package santeclair.connexion.service.parametrage.impl;

import org.springframework.stereotype.Service;

import santeclair.connexion.domaine.parametrage.ParametrageConnexionMQSeries;
import santeclair.connexion.domaine.parametrage.ParametrageConnexionSOAP;
import santeclair.connexion.domaine.parametrage.ParametrageEncapsulationConnexionSOAP;
import santeclair.connexion.domaine.parametrage.ParametrageExtractionRetourConnexionSOAP;
import santeclair.connexion.domaine.parametrage.ParametrageImsConnexionMQSeries;
import santeclair.connexion.service.parametrage.ParametrageConnexionService;

@Service
public class ParametrageConnexionServiceImpl implements
                ParametrageConnexionService {

    /** {@inheritDoc} */
    public ParametrageConnexionMQSeries creerParametrageConnexionMQSeries(
                    String canalTransmission, String canalReception, int codepage,
                    ParametrageConnexionMQSeries parametrageConnexionMQSeries) {
        if (parametrageConnexionMQSeries == null) {
            parametrageConnexionMQSeries = new ParametrageConnexionMQSeries();
        }

        parametrageConnexionMQSeries.setCanalTransmission(canalTransmission);
        parametrageConnexionMQSeries.setCanalReception(canalReception);
        parametrageConnexionMQSeries.setCodepage(codepage);
        return parametrageConnexionMQSeries;
    }

    /** {@inheritDoc} */
    public ParametrageConnexionSOAP creerParametrageConnexionSOAP(String url,
                    String service, String methode, String argument,
                    ParametrageConnexionSOAP parametrageConnexionSoap) {
        if (parametrageConnexionSoap == null) {
            parametrageConnexionSoap = new ParametrageConnexionSOAP();
        }

        parametrageConnexionSoap.setUrl(url);
        parametrageConnexionSoap.setService(service);
        parametrageConnexionSoap.setMethode(methode);
        parametrageConnexionSoap.setArgument(argument);
        return parametrageConnexionSoap;
    }

    /** {@inheritDoc} */
    public ParametrageEncapsulationConnexionSOAP creerParametrageEncapsulationSOAP(
                    String debEncapsulationSoap, String finEncapsulationSoap,
                    ParametrageEncapsulationConnexionSOAP parametrageEncapsulationConnexionSoap) {
        if (parametrageEncapsulationConnexionSoap == null) {
            parametrageEncapsulationConnexionSoap = new ParametrageEncapsulationConnexionSOAP();
        }

        parametrageEncapsulationConnexionSoap.setDebEncapsulation(debEncapsulationSoap);
        parametrageEncapsulationConnexionSoap.setFinEncapsulation(finEncapsulationSoap);
        return parametrageEncapsulationConnexionSoap;
    }

    /** {@inheritDoc} */
    public ParametrageExtractionRetourConnexionSOAP creerParametrageExtractionSOAP(
                    String expressionReguliereSoap, String codeRetourSoap,
                    String libelleRetourSoap, ParametrageExtractionRetourConnexionSOAP parametrageExtractionRetour) {
        if (parametrageExtractionRetour == null) {
            parametrageExtractionRetour = new ParametrageExtractionRetourConnexionSOAP();
        }
        parametrageExtractionRetour
                        .setExpressionReguliere(expressionReguliereSoap);
        parametrageExtractionRetour.setCodeRetour(codeRetourSoap);
        parametrageExtractionRetour.setLibelleRetour(libelleRetourSoap);
        return parametrageExtractionRetour;
    }

    /** {@inheritDoc} */
    public ParametrageImsConnexionMQSeries creerParametrageIMS(String imsUser,
                    String imsServiceIdent, String imsServiceCalcul,
                    String imsDebMessage, String imsFinMessage, ParametrageImsConnexionMQSeries parametrageIms) {
        if (parametrageIms == null) {
            parametrageIms = new ParametrageImsConnexionMQSeries();
        }
        parametrageIms.setUser(imsUser);
        parametrageIms.setServiceIdent(imsServiceIdent);
        parametrageIms.setServiceCalcul(imsServiceCalcul);
        parametrageIms.setDebMessage(imsDebMessage);
        parametrageIms.setFinMessage(imsFinMessage);
        return parametrageIms;
    }

}
